package com.glebusheg.data 
{
	import com.glebusheg.debug.Console;
	/**
	 * ...
	 * @author Gleb Volkov
	 */
	public class ItemUtil 
	{
		private static function createItemFromXML(xml:XML):Item
		{
			var item:Item;
			if(xml.hasOwnProperty("@name") && xml.hasOwnProperty("@type"))
			{
				item = new Item(xml.@name, xml.@type);
				if(item.type != ItemType.UNKNOWN)
					item.parse(xml);
				else
					item = null;
			}
			else
				Console.warn("В описании предмета (item) должны быть указаны аттрибуты name и type. Пропущено...");
			
			return item;
		}
		
		public static function createItemsFromXML(items:Object, xml:XML):Object
		{
			var node:XML;
			var item:Item;
			
			if (!items) items = {};
			
			if (xml)
			{
				for each (node in xml.item)
				{
					item = createItemFromXML(node);
					
					if(item && item.name)
					{
						if(items.hasOwnProperty(item.name))
							Console.warn("Предмет '" + item.name + "' описан больше одного раза. Заменяем...");

						items[item.name] = item;
					}
				}
			}
			
			return items;
		}
		
	}

}